﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using dados;
using System.Data;
using System.Web.UI.HtmlControls;

namespace web.admin
{
    public partial class CadastroProdutos : System.Web.UI.Page
    {
        #region Page_Load
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Categoria objCategoria = new Categoria();

                DataTable dtCategoria = objCategoria.Pesquisar();
                cboCategoria.DataTextField = "Descricao";
                cboCategoria.DataValueField = "Codigo";
                cboCategoria.DataSource = dtCategoria;
                cboCategoria.DataBind();
                ListItem lst = new ListItem("Selecione", "0");
                cboCategoria.Items.Insert(0, lst);
                cboCategoria.SelectedIndex = 0;

                Produto objProduto = new Produto();

                if (Request.QueryString["Codigo"] != null)
                {
                    DataTable dtDados = objProduto.Pesquisar(int.Parse(Request.QueryString["Codigo"]));

                    if (dtDados.Rows.Count > 0)
                    {
                        hdnCodigo.Value = dtDados.Rows[0]["Codigo"].ToString();
                        txtCodigoNatura.Text = dtDados.Rows[0]["CodigoNatura"].ToString();
                        txtTituloProduto.Text = dtDados.Rows[0]["Descricao"].ToString();
                        txtQuantidade.Text = dtDados.Rows[0]["Quant"].ToString().Replace('.', ',');
                        txtPreco.Text = dtDados.Rows[0]["VlUnitario"].ToString().Replace('.', ',');
                        cboCategoria.SelectedValue = dtDados.Rows[0]["Categoria"].ToString();
                        hdnCaminhoImagem.Value = "../" + dtDados.Rows[0]["CaminhoImagem"].ToString();
                        imgUpload.ImageUrl = "../" + dtDados.Rows[0]["CaminhoImagem"].ToString();
                        imgUpload.Visible = true;
                        HtmlTextArea txtTexto = (HtmlTextArea)this.FindControl("txtTexto");

                        txtTexto.Value = dtDados.Rows[0]["Texto"].ToString();
                        chkAtivo.Checked = (dtDados.Rows[0]["Ativo"].ToString() == "S");
                    }
                }


            }

        }
        #endregion

        #region btnSalvar_Click
        protected void btnSalvar_Click(object sender, EventArgs e)
        {
            try
            {

                #region Upload de imagem
                imgUpload.Visible = false;

                string sCaminhoVirtual = string.Empty;
                HtmlTextArea txtTexto = (HtmlTextArea)this.FindControl("txtTexto");
                if (uplFoto.HasFile)
                {
                    // BLOQUEIA A TRANSFERÊNCIA DE ARQUIVOS MAIOR QUE 1MB
                    if (uplFoto.PostedFile.ContentLength < 1048576)
                    {

                        Boolean fileOK = false;
                        string path = Server.MapPath("~/upload/");
                        //string sCaminho = @"c:\inetpub\wwwroot\invert\upload\" + uplFoto.FileName;
                        string sCaminho = path + uplFoto.FileName;
                        sCaminhoVirtual = "upload/" + uplFoto.FileName;

                        if (uplFoto.HasFile)
                        {
                            String fileExtension = System.IO.Path.GetExtension(uplFoto.FileName).ToLower();
                            String[] allowedExtensions = { ".gif", ".png", ".jpeg", ".jpg" };

                            for (int i = 0; i < allowedExtensions.Length; i++)
                            {
                                if (fileExtension == allowedExtensions[i])
                                {
                                    fileOK = true;
                                }
                            }
                        }

                        if (fileOK)
                        {
                            try
                            {
                                uplFoto.SaveAs(sCaminho);

                            }
                            catch (Exception ex)
                            {
                                // MENSAGEM INFORMATIVA PARA O USUÁRIO
                                Page.ClientScript.RegisterStartupScript(this.GetType(), "init", "<script>alert('" + ex.Message + ".');</script>");
                                throw new Exception(ex.Message);
                            }
                        }
                        else
                        {
                            // MENSAGEM INFORMATIVA PARA O USUÁRIO
                            string msg = "Só poderá carregar imagens neste campo.";
                            Page.ClientScript.RegisterStartupScript(this.GetType(), "init", "<script>alert('" + msg + ".');</script>");
                            throw new Exception(msg);
                        }

                    }
                    else
                    {
                        // MENSAGEM INFORMATIVA PARA O USUÁRIO
                        string msg = "Limite máximo para a imagem é de 1MB.";
                        Page.ClientScript.RegisterStartupScript(this.GetType(), "init", "<script>alert('" + msg + ".');</script>");
                        throw new Exception(msg);
                    }

                }
                #endregion

                string sAtivo = string.Empty;
                string sKit = string.Empty;

                Produto objProduto = new Produto();
                if (chkAtivo.Checked)
                    sAtivo = "S";
                else
                    sAtivo = "N";


                if (chkKit.Checked)
                    sKit = "S";
                else
                    sKit = "N";


                if (string.IsNullOrEmpty(sCaminhoVirtual))
                    sCaminhoVirtual = hdnCaminhoImagem.Value.Substring(3);

                txtQuantidade.Text = txtQuantidade.Text.Replace(',', '.');
                txtPreco.Text = txtPreco.Text.Replace(',', '.');
                
                CWProduto cwProduto = new CWProduto();

                if (!string.IsNullOrEmpty(hdnCodigo.Value))
                    cwProduto.Codigo = int.Parse(hdnCodigo.Value);

               
                cwProduto.CodigoNatura = txtCodigoNatura.Text;
                cwProduto.Descricao = txtTituloProduto.Text;
                cwProduto.Texto = txtTexto.Value;
                cwProduto.Quantidade = decimal.Parse(txtQuantidade.Text);
                cwProduto.ValorUnitario = decimal.Parse(txtPreco.Text);
                cwProduto.CaminhoImagem = sCaminhoVirtual;
                cwProduto.TipoKit = sKit;
                cwProduto.Categoria = cboCategoria.SelectedValue;
                cwProduto.Ativo = sAtivo;

                objProduto.Salvar(cwProduto);


                imgUpload.Visible = true;
                imgUpload.ImageUrl = "../" + sCaminhoVirtual;

                if (!string.IsNullOrEmpty(hdnCodigo.Value))
                    Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "Alerta", "<script>alert('Cadastro salvo com sucesso!');location.href='CadastroProdutosListar.aspx?cod=" + hdnCodigo.Value + "'</script>");
                else
                    Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "Alerta", "<script>alert('Cadastro salvo com sucesso!');location.href='CadastroProdutosListar.aspx'</script>");

            }
            catch (Exception ex)
            {

                lblMensagem.Text = ex.Message;
            }
        }
        #endregion

        #region btnVoltar_Click
        protected void btnVoltar_Click(object sender, EventArgs e)
        {
            Response.Redirect("CadastroProdutosListar.aspx");
        }
        #endregion

    }
}